Симетричні та асиметричні методи зашифрування інформації

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Не вказано
Кафедра:
Кафедра автоматики та телемеханіки

Інформація про роботу

Рік:
2005
Тип роботи:
Курсова робота
Предмет:
Методи та засоби криптографічних перетворень
Група:
ІБ – 41

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Інститут комп’ютерних технологій, автоматики та метрології Кафедра автоматики та телемеханіки Курсова робота з курсу: „Методи та засоби криптографічних перетворень” на тему: “Симетричні та асиметричні методи зашифрування інформації” Львів – 2005 Зміст Завдання 1 Теоретичні відомості Блок-схема алгоритму Список ідентифікаторів Текст програми Відкритий текст Результат зашифрування Висновки Завдання 2 Теоретичні відомості Вибір ключів Зашифрування Розшифрування Висновки Завдання 1 Вибрати ключі та розробити програму для за шифрування файлу даних заданим афінним шифром. Тип афінного шифру визначається останньою цифрою i НЗК. Об‘єм алфавіту визначається передостанньою цифрою j НЗК і дорівнює  при  і . I i mod 6 Тип афінного шифру  6 0 Зсув 1-го порядку    j Розрядність алфавіту  Об‘єм алфавіту   7 12 4096   Теоретичні відомості символьний алфавіт ототожнюємо з кільцем . А саме, кожна буква змінюється своїм номером у алфавіті, причому нумерація починається з нуля. Наприклад, латинська абетка утотожнюється, а українська із . Літера а української абетки трактується як 0, б як 1, і т. д. Тепер до букв відкритого тексту ми можемо вільно застосовувати операції додавання, множення за відповідним модулем. Шифр зсуву. Ключ: таке, що . Шифрування: у повідомленні кожна буква  заміщується буквою . дешифрування: У криптотексті кожна буква заміщується буквою , де . Величину зворотнього зсуву будемо називати дешифруючим ключем. Блок-схема прорами   Текст програми #include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> #include <string.h> unsigned long a=123, n=4096; const bit_mask = 12; const mask = pow(2, bit_mask)-1; void main(void) { char s[6]; FILE *f_in, *f_out; int end_of_in_file=0, x_is_ready=1; unsigned long buf_in, buf_out = 0, x; int in_bits=32, out_cells=32; if ( (f_in=fopen("data.in", "rb")) == NULL ) { printf("cannot open the file data.in"); getch(); exit(1); } else if ( (f_out=fopen("data.out", "wb")) == NULL) { printf("cannot open the file data.out or data_out.txt"); getch(); exit(1); } else { if (fread(&buf_in, 1, 4, f_in) != 0) while (!end_of_in_file) { if (in_bits<=0) { if (fread(&buf_in, 1, 4, f_in) != 0) { x |= (buf_in << (bit_mask+in_bits)) & mask; buf_in >>= (-in_bits); in_bits += 32; x_is_ready = 1 & !(in_bits==32); } else { end_of_in_file = 1; x_is_ready = 1; } } else { x = buf_in & mask; buf_in >>= bit_mask; in_bits -= bit_mask; x_is_ready = 1 & (in_bits>=0); } /*--------------------------------*/ if (x_is_ready) { x = (unsigned int)(fmod(a+x, n)); itoa(x, s, 10); printf("%s", strcat(s, " ")); buf_out |= x << (32-out_cells); out_cells -= bit_mask; if (out_cells<=0) { fwrite(&buf_out, 4, 1, f_out); buf_out &= 0; if (out_cells==0) out_cells = 32; else { buf_out |= x >> (bit_mask+out_cells); out_cells += 32; } } } } fcloseall(); printf("\nReady. Press any key."); getch(); } } Список ідентифікаторів Ідентифікатори Призначення  unsigned long a=123 Ключ  unsigned long n=4096 Розмір алфавіту  FILE *f_in Вхідний файл  FILE *f_out Зашифрований файл  int end_of_in_file=0 Прапорець кінця файлу  int x_is_ready=1 Прапорець готовності символа  unsigned long buf_in Вхідний буфер (32 біти)  unsigned long buf_out = 0 Вихідний буфер (32 біти)  unsigned long x Проміжний символ (9 біт)  int in_bits=32 Лічильник непрочитаних бітів вхідного буфера  int out_cells =32 Лічильник незаповнених бітів вихідного буфера   Текст вхідного повідомлення Методи чисельного розв‘язування систем лінійних рівнянь поділяються на дві групи: 1) „точні” (прямі) методи, які дозволяють одержати розв‘язок, якщо він існує, як скінченну...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини